package com.example.netty.pojo;

import com.example.netty.common.Compare;
import com.example.netty.common.Exclude;
import com.example.netty.common.Reserve;
import com.influxdb.annotations.Column;
import com.influxdb.annotations.Measurement;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.Instant;

@ApiModel("Power1对象")
@Data
@Measurement(
    name = "Power1"
)
public class Power1 implements Serializable {
  @Exclude
  private static final long serialVersionUID = 1L;

  @Compare(">")
  @ApiModelProperty("301-1#发电机组转速")
  @Column
  private String z301;

  @ApiModelProperty("302-1#发电机组开关合闸次数")
  @Column
  private String z302;

  @ApiModelProperty("303-1#发电机组运行小时数")
  @Column
  private String z303;

  @ApiModelProperty("304-")
  @Column
  private String z304;

  @Compare(">")
  @Reserve(1)
  @ApiModelProperty("305-1#发电机组冷却水温度")
  @Column
  private String z305;

  @Compare(">")
  @Reserve(1)
  @ApiModelProperty("306-1#发电机组机油油温")
  @Column
  private String z306;

  @Compare("<")
  @Reserve(2)
  @ApiModelProperty("307-1#发电机组机油压力")
  @Column
  private String z307;

  @Compare("<")
  @Reserve(1)
  @ApiModelProperty("308-1#蓄电池电压")
  @Column
  private String z308;

  @Compare(">")
  @Reserve(1)
  @ApiModelProperty("309-1#发电机组功率")
  @Column
  private String z309;

  @Compare(">")
  @Reserve(1)
  @ApiModelProperty("310-1#发电机组电压")
  @Column
  private String z310;

  @Compare(">")
  @Reserve(1)
  @ApiModelProperty("311-1#发电机组电流")
  @Column
  private String z311;

  @Compare(">")
  @Reserve(2)
  @ApiModelProperty("312-1#发电机组频率")
  @Column
  private String z312;

  @Compare(">")
  @Reserve(1)
  @ApiModelProperty("313-配电板母线电压")
  @Column
  private String z313;

  @Compare(">")
  @Reserve(1)
  @ApiModelProperty("314-岸电电压")
  @Column
  private String z314;

  @ApiModelProperty("315-通讯计数器")
  @Column
  private String z315;

  @ApiModelProperty("316-通讯计数器")
  @Column
  private String z316;

  @Exclude
  @ApiModelProperty("创建时间")
  @Column(
      name = "_time",
      timestamp = true
  )
  private Instant createTime;
}
